package com.gmrz.webauthn.protocol.v1.schema;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;


public class CredentialAttestation {
    private byte[] authenticatorDataBytes;
    @SerializedName("authData")
    @Expose
    private transient AuthenticatorData authenticatorData = null;


    @SerializedName("fmt")
    @Expose
    private AttestationFormat format;


    @SerializedName("attStmt")
    @Expose
    private Object attStmt;


    public AttestationFormat getFormat() {
        return this.format;
    }

    public void setFormat(AttestationFormat format) {
        this.format = format;
    }

    public CredentialAttestation withFormat(AttestationFormat format) {
        this.format = format;
        return this;
    }

    public byte[] getAuthenticatorDataBytes() {
        return this.authenticatorDataBytes;
    }

    public void setAuthenticatorDataBytes(byte[] authenticatorDataBytes) {
        this.authenticatorDataBytes = authenticatorDataBytes;
    }

    public AuthenticatorData getAuthenticatorData() {
        return this.authenticatorData;
    }

    public CredentialAttestation withAuthenticatorData(AuthenticatorData authenticatorData) {
        this.authenticatorData = authenticatorData;
        return this;
    }

    public Object getAttestationStatement() {
        return this.attStmt;
    }

    public void setAttestationStatement(Object attStmt) {
        this.attStmt = attStmt;
    }

    public CredentialAttestation withAttestationStatement(Object attStmt) {
        this.attStmt = attStmt;
        return this;
    }

    public CredentialAttestation withAuthenticatorDataBytes(byte[] authenticatorDataBytes) {
        this.authenticatorDataBytes = authenticatorDataBytes;
        return this;
    }

    public String toString() {
        return "WebAuthnAttestation [format=" + this.format + ", authenticatorData=" + this.authenticatorData + ", attStmt(len)=" + this.attStmt + "]";
    }
}
